/**********************************************************************************
 * Code license:  GNU General Public License v3                                   *
 * Main page:     https://code.google.com/p/library-cross-platform/               *
 * Issue tracker: https://code.google.com/p/library-cross-platform/issues/list    *
***********************************************************************************/

package library.compiler;


public interface Variable {


/**
 * operator '==' 
 * @param type
 * @return if type is equal this then true otherwise false
 */
  boolean equal(Variable type);

/**
 * operator '!=' 
 * @param type
 * @return if type is not equal this then true otherwise false
 */
  boolean notequal(Variable type);
    
/**
 * operator '=' 
 * assign the type to this
 * @param type
 * @return new type
 */
  Variable assign(Variable type);
        
/**
 * operator '+' 
 * the type plus this type
 * @param type
 * @return new type
 */
  Variable plus(Variable type);
          
/**
 * operator '-' 
 * the type minus this type
 * @param type
 * @return new type
 */
  Variable minus(Variable type);
            
/**
  * operator '/' 
  * division operator
  * @param type
  * @return new type
  */
  Variable div(Variable type);
             
/**
  * operator '*' 
  * multiplication
  * @param type
  * @return new type
  */
  Variable mult(Variable type);
                
/**
  * operator '<>' 
  * is this type contains type or not
  * @param type
  * @return true if this type contains type otherwise false
  */
  Variable contains(Variable type);
                  
}
